1. Field of the Invention
The invention disclosed and claimed herein generally pertains to a method and related apparatus for routing PCI transaction packets between multiple root nodes and adapters, through a PCI switched-fabric bus. More particularly, the invention pertains to a method of the above type wherein packets from different system images of the root nodes may be routed through the fabric to share the same adapter. Even more particularly, the invention pertains to a method of the above type wherein it is necessary to provide an arrangement for routing an error notification message from an adapter to a system image affected by the error.
2. Description of the Related Art
As is well known by those of skill in the art, PCI Express (PCI-E) is widely used in computer systems to interconnect host units to adapters or other components, by means of a PCI switched-fabric bus or the like. However, PCI-E currently does not permit the sharing of input/output (I/O) adapters in topologies where there are multiple hosts with multiple shared PCI buses. As a result, even though such sharing capability could be very valuable when using blade clusters or other clustered servers, adapters for PCI-E and secondary networks (e.g., FC, IB, Enet) are at present generally placed only into individual blades and server systems. Thus, such adapters cannot be shared between clustered blades, or even between multiple roots within a clustered system.
In an environment containing multiple blades or blade clusters, it can be very costly to dedicate a PCI adapter for use with only a single blade. For example, a 10 Gigabit Ethernet (10 GigE) adapter currently costs on the order of $6,000. The inability to share these expensive adapters between blades has, in fact, contributed to the slow adoption rate of certain new network technologies such as 10 GigE. Moreover, there is a constraint imposed by the limited space available in blades to accommodate I/O adapters. This problem of limited space could be overcome if a PC network was able to support attachment of multiple hosts to a single PCI adapter, so that virtual PCI I/O adapters could be shared between the multiple hosts.
In a multi-host system of the above type, respective hosts may be grouped in host CPU sets or root nodes, wherein each host in a root node corresponds to a system image therein. Error message packets, which provide notice of errors occurring in the shared I/O adapters, must be handled with special requirements. More particularly, such error messages need to be routed to the root node to which the I/O adapter, or shared virtual I/O adapter, is assigned and by which the adapter is controlled. Moreover, it is necessary to notify the system images in the respective root nodes that errors have occurred which may affect them. In general, I/O adapter errors in a multi-root node environment can freeze the operations of systems using those adapters. Accordingly, it would be beneficial to provide an effective mechanism for accurately routing shared I/O adapter error messages to the correct root nodes and system images. This would serve to make operations in a multi-host environment much more reliable.